package comits.business.tiers.dao;
import java.util.List;

import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.context.ManagedSessionContext;

import comits.business.tiers.metiers.Boutique;
import comits.business.tiers.metiers.Depot;
import comits.business.tiers.metiers.Produit;
import comits.business.tiers.orm.hibernate.HibernateSession;

public class BoutiqueDAOImpl implements BoutiqueDAO {

	@SuppressWarnings("unchecked")
	public List<Boutique> recupererListeBoutique() {

		//utilisation de la session hibernate
		//exécution de la requète et recupération dans une arraylist 
		// utilisation fichier de requète properties : PropertiesConfig.Get("SelectAllBoutiques")

		SQLQuery sql = HibernateSession.currentSession()
		.createSQLQuery(PropertiesConfig.Get("SelectAllBoutiques"))
		.addEntity(Boutique.class);
		
		List<Boutique> list = sql.list();

		ManagedSessionContext.unbind(HibernateSession.getSessionFactory());

		// Affichage des résultats de la requète
		System.out.println("********** Recuperation des boutiques ***********");

		return list;
	}

	public List<Boutique> recupererListeBoutique2(int nExp, int numF) {
		// TODO Auto-generated method stub
		Session session = HibernateSession.currentSession();
		SQLQuery sql =  session.createSQLQuery(PropertiesConfig.Get("SelectBtqFromExp"))
		.addEntity(Boutique.class);
		
		sql.setInteger(0,nExp);
		sql.setInteger(1,numF);
		List<Boutique> list = sql.list();
		
		ManagedSessionContext.unbind(HibernateSession.getSessionFactory());
		
		return list;
	}
	
	public Boutique recupereBoutique(Integer numbtq) {
		//Execution de la requete et recuperation dans une arraylist 
		SQLQuery sql = HibernateSession.currentSession()
		.createSQLQuery(PropertiesConfig.Get("SelectPtqq"))
		.addEntity(Boutique.class);
		/*SQLQuery sql = HibernateSession.currentSession()
		.createSQLQuery("Select * FROM boutique WHere NumBtq = ?")
		.addEntity(Produit.class);*/
		
		 sql.setInteger(0, numbtq);
		 Boutique btq = (Boutique) sql.uniqueResult();
		System.out.println("***************** Boutique ***************");
		System.out.println(btq.toString());
		ManagedSessionContext.unbind(HibernateSession.getSessionFactory());
		
		//session.close();
		// Affichage des resultats de la requete
		
		return btq;

	
	}

}
